﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ComunesMGI.DataTypes;
using ClienteWinMGI.Logica;
using ComunesMGI.Mensajes;

namespace ClienteWinMGI.Presentacion
{
    public partial class AsignarIncidentesWP : Form
    {
       
        private DataWP _datosWP;
        private int _idC;
        private int _idS;

        public AsignarIncidentesWP(int cli,int sis, DataWP wp)
        {
            InitializeComponent();
            _idC = cli;
            _idS = sis;
            _datosWP = wp;
            CargarIncidentes();
            
        }

        private void CargarIncidentes()
        {
            IIncidentes ii = LogicaFactory.getInstance().getIIncidentes();
            List<DataIncidente> lista = ii.GetIncidentesAsignablesWP(_datosWP.Id) ;
            
            foreach(DataIncidente di in lista)
            {
                int id= di.IdIncidente;
                string descripcion= di.Descripcion;
                string agregar= "Id= "+ id + " ;" +" Descripcion= "+descripcion;
                checkLBInc.Items.Add(agregar);
            }
        }

 

        public DataWP DatosWP
        {
            get { return _datosWP; }
            set { _datosWP = value; }
        }
       

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAsociar_Click(object sender, EventArgs e)
        {
            
            if (checkLBInc.CheckedItems.Count == 0)
            {
                Error error = new Error("Error", "Debe seleccionar algun incidente", "Debe seleccionar algun incidente para poder asociarselo al work package");
                error.ShowDialog();

            }
            else {
                List<int> listaIncidentesSelec = new List<int>();
                
                foreach (object itemCheck in checkLBInc.CheckedItems)
                {
                    
                    {
                        string seleccionado = itemCheck.ToString();
                        char[] delimitador = { '=', ';' };

                        string[] palabras = seleccionado.Split(delimitador);
                        int id = int.Parse(palabras[1]);
                        
                     
                        listaIncidentesSelec.Add(id);
                        

                    }
                }
                IIncidentes ii = LogicaFactory.getInstance().getIIncidentes();
             
                ii.AsociarIncidentesWP( _idS, _datosWP.Id, listaIncidentesSelec);

                Notificacion notificacion = new Notificacion("Incidentes asociados", "Asociación de Incidentes a Work Package exitosa", "Se han agregado los incidentes seleccionados al Work Package ");
                notificacion.ShowDialog();
                this.Close();
               
            
            }
            
            
            
        }

        private void chekLBInc_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {
                    }
    }
}
